package com.ibeeking.found.cop.b.rest.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ibeeking.found.cop.service.common.dto.KfAccountDTO;
import com.ibeeking.found.cop.service.common.param.KfAccountParam;
import com.ibeeking.found.cop.service.common.query.KfAccountPageQuery;
import com.ibeeking.found.cop.service.common.query.KfAccountQuery;
import com.ibeeking.found.cop.service.common.vo.KfAccountVO;

import java.util.List;

public interface IKfAccountService {

    /***
     * 查询列表
     */
    List<KfAccountVO> list(KfAccountQuery query);

    /***
     * 分页查询
     */
    Page<KfAccountVO> pageList(KfAccountPageQuery pageQuery);

    /***
     * 新增
     */
    Boolean add(KfAccountParam param);

    /***
     * 修改
     */
    Boolean modify(KfAccountParam param);

    /***
     * 通过id查询
     */
    KfAccountVO view(Long id);

    /***
     * 通过id查询
     */
    KfAccountDTO queryDefaultKfAccount();

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status);


    /***
     * 通过id删除
     */
    Boolean del(Long id);
    /**
     * 从企业微信同步客服账号
     *
     * @param
     */
    Integer syncKfAccountListFromWxCp();

    /***
     * 从企业微信同步客服账号链接URL
     */
    String getKfAccountLinkFromWxCp(Long id);

    /***
     * 从企业微信同步群信息批量保存
     */
    Integer saveOrUpdateOrDeleteBatchKfAccount(Long tenantId, List<KfAccountParam> params);

    /***
     * 从企业微信同步客服账号
     */
    Integer syncKfAccountToWxCp(Long id, Boolean deleted);

}
